package cn.e4j.modular.crm.service;

import cn.e4j.core.dto.impl.Dto;
import cn.e4j.modular.crm.entity.GwakT;
import cn.e4j.modular.crm.entity.GwaklT;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  客户资料维护 服务类
 * </p>
 *
 * @author miaoyl
 * @since 2019-01-11
 */
public interface GwakTService extends IService<GwakT> {

    /**
     * 查询客户资料列表
     */
    List<Map<String, Object>> getHeadList(Page<Object> page, Dto dto);

    /**
     * 查询币种数据
     */
    List<Map<String, Object>> getGwacList(Dto dto);

    /**
     * 查询客户分类数据
     */
    List<Map<String, Object>> getGwafList(Dto dto);

    /**
     * 查询客户渠道数据
     */
    List<Map<String, Object>> getGwaeList(Dto dto);

    /**
     * 查询客户等级数据
     */
    List<Map<String, Object>> getGwaqList(Dto dto);

    /**
     * 查询生命周期数据
     */
    List<Map<String, Object>> getGwarList(Dto dto);

    /**
     * 查询行业分类数据
     */
    List<Map<String, Object>> getGwagList(Dto dto);

    /**
     * 查询税种数据
     */
    List<Map<String, Object>> getGweaList(Dto dto);

    /**
     * 查询归属法人数据
     */
    List<Map<String, Object>> getSysOrgList(Dto dto);

    /**
     * 查询仓库资料数据
     */
    List<Map<String, Object>> getGwasList(Dto dto);

    /**
     * 根据编号查询数据
     */
    GwakT getByGwak001(String ent,String gwak001);

    /**
     * 新增
     */
    void add(GwakT gwakT, GwaklT gwaklT, Dto inDto);

    /*
    * 修改
    */
    void edit(GwakT gwakT, GwaklT gwaklT);

    /*
     * 删除
     */
    void delete(GwakT gwakT, GwaklT gwaklT);

    /*
    * 批量删除
    */
    void delDataBatch(List<GwakT> gwakTList);

    /**
     * 查询erp数据库列表
     */
    List<Map<String, Object>> getERPList(Page<Object> page, Dto dto);

    /**
     * 更新ERP数据库
     */
    int updateERP(Dto dto);

    /**
     * 插入ERP数据库
     */
    int insertERP(Dto dto);

    /**
     * 查询客户是否已存在ERP
     */
    Dto selectByGwak001(Dto dto);

    /**
     * 查询ERP数据库信息
     */
    Dto getDBinfo(String MB001);

    /**
     * 查询客户信息
     */
    Dto getGwakData(Dto dto);

    /*
    * 修改客户状态
    */
    void updateStatus(List<GwakT> gwakTList);

    /**
     * 获取新增默认值
     */
    Dto getAddData(Dto dto);

    Dto getCount(Dto inDto, String GWAKL004);

    GwakT getGwak(Dto dto);

    /*
   * 修改客户状态及退回信息
   */
    void updateBackInfo(List<GwakT> gwakTList, String GWAK088);
}
